import java.io.*;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * user:likai
 * Date:2022-12-12
 * Time:18:28
 */
public class Test {
    //删除指定字符的文件
    public static void main1(String[] args) throws IOException {
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入需要删除的文件的目录");
        String rootDirPath=scanner.next();
        File rootDir=new File(rootDirPath);
        //判断是不是目录
        if(!rootDir.isDirectory()){
            System.out.println("不是根目录或者根目录不存在");
            return;
        }
        System.out.println("请输入需要删除的文件名");
        String file=scanner.next();
        //查找文件
        List<File> list=new LinkedList<>();
        search(file,rootDir,list);
        for (File file1:list) {
            System.out.println(file1.getCanonicalFile()+"是否要删除这个文件：是(Y/N)");
            String string=scanner.next();
            if(string.toLowerCase().equals("y")){
                file1.delete();
            }
        }
    }
    public static void search(String fileName,File fileDir,List<File> list){
        File []files=fileDir.listFiles();
        if(files==null||files.length==0){
            return;
        }
        for(File file:files){
            if(file.isDirectory()){
                search(fileName,file,list);
            }else{
                //判断文件名是否相同
                if(file.getName().contains(fileName)){
                    list.add(file);
                }
            }
        }
    }
    //复制文件
    public static void main2(String[] args)  {
        Scanner scanner=new Scanner(System.in);
        System.out.println("输入需要复制文件：");
        File fileScoure=new File(scanner.next());
        if(!fileScoure.exists()){
            System.out.println("他不存在");
            return;
        }
        if(!fileScoure.isFile()){
            System.out.println("他不是文件");
            return;
        }
        //选择需要复制的文件
        System.out.println("请输入需要复制到的文件名：");
        File fileDest=new File(scanner.next());
        if(!fileDest.getParentFile().isDirectory()){
            System.out.println("输入的目标文件有误");
        }
        try (InputStream inputStream=new FileInputStream(fileScoure);
             OutputStream outputStream=new FileOutputStream(fileDest)){
            while (true){
                int ret=inputStream.read();
                if(ret==-1){
                    return;
                }
                outputStream.write(ret);
            }
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
    //
    public static void main(String[] args) throws IOException {
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入需要查找的文件的目录");
        String rootDirPath=scanner.next();
        File rootDir=new File(rootDirPath);
        //判断是不是目录
        if(!rootDir.isDirectory()){
            System.out.println("不是根目录或者根目录不存在");
            return;
        }
        System.out.println("请输入需要查找的文件名");
        String file=scanner.next();
        //查找文件
        List<File> list=new LinkedList<>();
        search(file,rootDir,list);
        System.out.println("一共查找到了"+list.size()+"个文件，分别是：");
        for (File file1:list) {
            System.out.println(file1.getCanonicalFile());
        }
    }
}
